package com.forum.message.model.entity;

import com.baomidou.mybatisplus.annotation.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDateTime;

/**
 * 消息实体类
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@TableName("message") // 表名映射
public class Message {
    
    @TableId(type = IdType.AUTO)
    private Long id;
    
    /**
     * 消息类型：AUDIT/LIKE/COMMENT/MENTION等
     */
    private String type;
    
    /**
     * 消息内容
     */
    private String content;
    
    /**
     * 发送者ID（可以是系统或用户）
     */
    @TableField("sender_id")
    private Long senderId;
    
    /**
     * 接收者ID
     */
    @TableField("receiver_id")
    private Long receiverId;
    
    /**
     * 关联资源ID（如帖子ID、评论ID等）
     */
    @TableField("resource_id")
    private Long resourceId;
    
    /**
     * 关联资源类型（如POST、COMMENT等）
     */
    @TableField("resource_type")
    private String resourceType;
    
    /**
     * 消息是否已读
     */
    @TableField("is_read")
    private Boolean isRead = false;
    
    /**
     * 消息创建时间
     */
    @TableField(value = "created_time", fill = FieldFill.INSERT)
    private LocalDateTime createdTime;
    
    /**
     * 消息阅读时间
     */
    @TableField("read_time")
    private LocalDateTime readTime;
    
    /**
     * 消息链接
     */
    private String link;
} 